/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Service;

import DAO.DAOFactory;
import DAO.ProyectoDAO;
import DAO.UsuarioDAO;
import DAO.exceptions.IllegalOrphanException;
import DAO.exceptions.NonexistentEntityException;
import DAO.exceptions.RollbackFailureException;
import Entidad.Proyecto;
import Entidad.Usuario;
import VO.ProyectoVO;
import VO.UsuarioVO;
import javax.persistence.EntityManager;

/**
 *
 * @author David
 */
public class ProjectServices {
    public void createProject(ProyectoVO proyectoVo,UsuarioVO usuarioVo, EntityManager em) throws Exception{
        ProyectoDAO dao = (ProyectoDAO)DAOFactory.createDAO(DAOFactory.PROYECTO);
        UsuarioDAO userDao =(UsuarioDAO) DAOFactory.createDAO(DAOFactory.USUARIO);
        Proyecto proyecto = proyectoVo.toEntity();
        int size = dao.getProyectoCount(em);
        proyecto.setIdproyecto(size+1);
        dao.create(proyecto, em);
        App.Sesion.setIdproyecto(proyecto.getIdproyecto());
        Usuario usuario = usuarioVo.toEntity();
        usuario.setIdproyecto(proyecto);
        userDao.edit(usuario, em);
    }
    
    public ProyectoVO readProject(int id, EntityManager em) {
        ProyectoDAO projectDAO = (ProyectoDAO)DAOFactory.createDAO(DAOFactory.PROYECTO);
        Proyecto entity = projectDAO.findProyecto(id, em);
        if(entity != null) {
           ProyectoVO vo =  entity.toVO();
           return vo;
        }
        else {
            return null;
        }
    }
    
    public void updateProject(ProyectoVO vo, EntityManager em) throws IllegalOrphanException, NonexistentEntityException, RollbackFailureException, Exception {
        ProyectoDAO proyectoDAO = (ProyectoDAO)DAOFactory.createDAO(DAOFactory.PROYECTO);
        Proyecto proyecto = vo.toEntity();
        proyectoDAO.edit(proyecto, em);
    }
    
    public void deleteProject(int id, EntityManager em) {
    }
}
